package de.hsos.samcomm.common.constraints;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;

/**
 * Constraint für die eingegebene E-Mail-Adresse.
 *
 * @author felix
 */
@Constraint( validatedBy = EMailValidator.class )
@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE })
@Retention( RetentionPolicy.RUNTIME )
@Documented
public @interface EMail {
  /**
   * Die Standardnachricht des Constraints.
   *
   * @return Standartnachricht
   */
  String message() default "ist keine gültige E-Mail-Adresse";

  /**
   * Zuweisung zu einer Constraintgruppe.
   *
   * @return Class<?>[]
   */
  Class<?>[] groups() default {};

  /**
   * Zusätzliche Informationen.
   *
   * @return Class<? extends Payload>[]
   */
  Class<? extends Payload>[] payload() default {};
}